<div class="jumbotron">
	<div class="container text-center">
		<img class="logo" src="/assets/images/logo.svg">
		<h1 class="brand display-3">Goproxy 中国</h1>
		<p>中国最可靠的 Go 模块代理。</p>
		<p><span class="badge badge-success">已缓存 {{.ModuleVersionCount}} 个模块版本</span></p>
		<a class="github-button" href="https://github.com/goproxy/goproxy.cn" data-size="large" data-show-count="true" aria-label="Star goproxy/goproxy.cn on GitHub">Star</a>
	</div>
</div>

<div class="container">
	<div class="row text-center">
		<div class="col-md-3">
			<h3 class="text-info"><i class="fas fa-rocket"></i>&nbsp;极速下载</h3>
			<p>我们正在使用<a href="https://www.qiniu.com/products/qcdn" target="_blank">七牛云 CDN</a> 在全球范围内加速我们的服务，并且我们没有设置任何带宽限制。凭借着数以千计的 CDN 节点和 <b>40Gbps+ 的单节点带宽</b>，你将被赋予一个以极快的速度下载模块版本的能力。</p>
		</div>

		<div class="col-md-3">
			<h3 class="text-info"><i class="fas fa-infinity"></i>&nbsp;没有限制</h3>
			<p>我们不但没有设置带宽限制。更进一步地，我们还<b>没有设置任何速率限制</b>。这意味着你可以在任何场景下使用我们的服务，例如 CI/CD。你甚至可以像 <a href="https://goproxy.baidu.com" target="_blank">goproxy.baidu.com</a> 一样将我们的服务用作上游代理。</p>
		</div>

		<div class="col-md-3">
			<h3 class="text-info"><i class="fas fa-th-large"></i>&nbsp;功能齐全</h3>
			<p>我们一直在使用最新的 Go 版本，甚至是不稳定版本。因为我们提供了<b>最前沿的功能支持</b>。特别地，我们支持<a href="https://golang.org/design/25530-sumdb#proxying-a-checksum-database" target="_blank">代理</a>默认的校验和数据库 <a href="https://sum.golang.org" target="_blank">sum.golang.org</a>。你不需要做任何额外的事情，它就可以工作。</p>
		</div>

		<div class="col-md-3">
			<h3 class="text-info"><i class="fas fa-eye"></i>&nbsp;数据可视</h3>
			<p>为了使大家可以更好地了解我们的服务中所有模块的活跃度，我们推出了 Go 模块代理世界中的首个<a href="/stats">统计数据 API</a>。通过得体的 RESTful API 设计，你将能够轻松地查询我们服务中所有模块版本的统计数据。</p>
		</div>
	</div>

	<hr>

	<div class="row text-center">
		<div class="col-md">
			<h3 id="用法"><a class="font-weight-bold text-info" href="#用法">用法</a></h3>
		</div>
	</div>

	<div class="row">
		<div class="col-md">
			<p id="Go 1.13 及以上（推荐）"><a class="font-weight-bold text-info" href="#Go 1.13 及以上（推荐）">Go 1.13 及以上（推荐）</a></p>
			<p>打开你的终端并执行</p>
			<pre><code class="language-bash">$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct</code></pre>
			<p>完成。</p>

			<p id="macOS 或 Linux"><a class="font-weight-bold text-info" href="#macOS 或 Linux">macOS 或 Linux</a></p>
			<p>打开你的终端并执行</p>
			<pre><code class="language-bash">$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn</code></pre>
			<p>或者</p>
			<pre><code class="language-bash">$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile</code></pre>
			<p>完成。</p>

			<p id="Windows"><a class="font-weight-bold text-info" href="#Windows">Windows</a></p>
			<p>打开你的 PowerShell 并执行</p>
			<pre><code class="language-bash">C:\> $env:GO111MODULE = "on"
C:\> $env:GOPROXY = "https://goproxy.cn"</code></pre>
			<p>或者</p>
			<pre><code class="language-md">1. 打开“开始”并搜索“env”
2. 选择“编辑系统环境变量”
3. 点击“环境变量…”按钮
4. 在“&lt;你的用户名&gt; 的用户变量”章节下（上半部分）
5. 点击“新建…”按钮
6. 选择“变量名”输入框并输入“GO111MODULE”
7. 选择“变量值”输入框并输入“on”
8. 点击“确定”按钮
9. 点击“新建…”按钮
10. 选择“变量名”输入框并输入“GOPROXY”
11. 选择“变量值”输入框并输入“https://goproxy.cn”
12. 点击“确定”按钮</code></pre>
			<p>完成。</p>
		</div>
	</div>

	<hr>

	<div class="row text-center">
		<div class="col-md">
			<h3 id="自托管 Go 模块代理"><a class="font-weight-bold text-info" href="#自托管 Go 模块代理">自托管 Go 模块代理</a></h3>
		</div>
	</div>

	<div class="row">
		<div class="col-md">
			<p>你的代码永远只属于你自己，因此我们向你提供目前世界上最炫酷的自托管 Go 模块代理搭建方案。通过使用 <a href="https://github.com/goproxy/goproxy" target="_blank">Goproxy</a> 这个极简主义项目，你可以在现有的任意 Web 服务中轻松地加入 Go 模块代理支持，要知道 <a href="https://goproxy.cn" target="_blank">goproxy.cn</a> 就是基于它搭建的。</p>
			<p>创建一个名为 <code>goproxy.go</code> 的文件</p>
			<pre><code class="language-go">package main

import (
	"net/http"
	"os"

	"github.com/goproxy/goproxy"
)

func main() {
	g := goproxy.New()
	g.GoBinEnv = append(
		os.Environ(),
		"GOPROXY=https://goproxy.cn,direct", // 使用 goproxy.cn 作为上游代理
		"GOPRIVATE=git.example.com",         // 解决私有模块的拉取问题（比如可以配置成公司内部的代码源）
	)
	http.ListenAndServe("localhost:8080", g)
}</code></pre>
			<p>并且运行它</p>
			<pre><code class="language-bash">$ go run goproxy.go</code></pre>
			<p>然后通过把 <code>GOPROXY</code> 设置为 <code>http://localhost:8080</code> 来试用它。另外，我们也建议你把 <code>GO111MODULE</code> 设置为 <code>on</code>。</p>
			<p>就这么简单，一个功能完备的 Go 模块代理就搭建成功了。事实上，你可以将 <a href="https://github.com/goproxy/goproxy" target="_blank">Goproxy</a> 结合着你钟爱的 Web 框架一起使用，比如 <a href="https://pkg.go.dev/github.com/gin-gonic/gin#WrapH" target="_blank">Gin</a> 和 <a href="https://pkg.go.dev/github.com/labstack/echo/v4#WrapHandler" target="_blank">Echo</a>，你所需要做的只是多添加一条路由而已。更高级的用法请查看<a href="https://pkg.go.dev/github.com/goproxy/goproxy" target="_blank">文档</a>。</p>
		</div>
	</div>
</div>
